import re
import datetime
def parse_datetime(date_time_str):
    # 正则表达式匹配格式: YYYY-MM-DD HH:MM 或 YYYY-MM-DD HH:MM:SS
    # 括号 () 用于捕获分组
    pattern = r'^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2})(?::(\d{2}))?$'
    match = re.fullmatch(pattern, date_time_str.strip()) # 使用 fullmatch 确保整个字符串匹配，并去除首尾空格

    if not match:
        raise ValueError(f"时间格式不正确: {date_time_str}. 需要是 'YYYY-MM-DD HH:MM' 或 'YYYY-MM-DD HH:MM:SS' 格式。")

    year, month, day, hour, minute, second = match.groups()

    # 如果没有秒 (second 分组是 None)，则使用 0 作为秒
    second = int(second) if second is not None else 0

    # 创建 datetime 对象
    dt = datetime.datetime(int(year), int(month), int(day),
                           int(hour), int(minute), second)
    return dt